A basic method to search a content in a P2P network is “flooding” (bucket-brigade type search). A search query issued by one node that participates in a network is propagated through node to node until the query reaches a node that has the search object content. When the search query reaches a node that possesses the content, a reply indicating the node possesses the content propagates reversely through the incoming route and reaches the node where the search query is issued. The flooding is advantageous in that a search query almost always reaches a node that possesses a content. However, the flooding has disadvantages in that communication traffic for an entire network is large and a response is slow from the perspective of an issue source of the search query.
As a method to suppress traffic, limiting the number of hops is considered. Limiting the number of hops limits a range that a search query propagates. The search discontinues when the number of hops which corresponds to the number of nodes that the search query propagates reaches the limit value.
As a method to expedite a response of a search, a structuring a query propagation form such as an n-ary tree or grouping nodes are considered. However, in the methods, the search queries are propagated in parallel and thus the number of search queries that flow over the P2P network is larger than the number of search queries that propagate in a simple bucket-brigade type search. In other words, the traffic increases.
A distributed hash table (DHT) is used as a routing method in a P2P network. In the DHT, contents possession statuses are aggregated to and maintained by some specific nodes. Accordingly, traffic caused at a search may be substantially reduced compared with that of flooding, and a search with high responsiveness may be achieved.
JP7-334516 discusses a method to increase efficiency of a data search in a computer network that is not a P2P network by referring to a search history. According to the method, in a keyword search in which data that includes a keyword specified by a user is searched, search requests are sequentially transmitted to response sources that transmitted a response similar to the searched keyword in the past search in the order of a response with a higher degree of similarity to the currently searched keyword. The network load may be reduced by constricting destinations to transmit search requests. However, the keyword search results may include a result that is not desired by the user (so-called noise) even if the keyword is included. The noise and the response source are recorded in the search history. Accordingly, the search is conducted by using such search history thereafter.